<?php

/**
 * Utilidades generales para el frame
 * @author Robert Babilonia <bobbabilon2@gmail.com>
 * @todo Generar metodos para manejo de montos monetarios, habilitar compatibilidad con locale y configuracion del sistema para establecer los formatos a usar
 * 
 */
final class CommanderUtils {

    /**
     * Funcion que cambia los formatos de los montos, usa '.' para separador de miles y ','
     * para separador de decimales.
     * Si se pasa parametro 1 y un numero sin formato regresa el numero formateado.
     * Si se pasa parametro 2 y un valor formateado, regresa el numero sin formato, con el '.' por defecto como
     * separador de decimales. 
     * 
     * @param integer $parametro indica el formato de retorno:
     *      1 Formato latinoamericano (decimal coma) sin separador de miles P.E: 1000,00
     *      2 Formato de insercion a la base de datos (decimal punto sin separador de miles) P.E: 1000.00
     *      3 Formato latinoamericano con separador de  miles P.E: 1.000,00
     * @param string $numero Numero al que se desea dar el formato
     * @return string Con el numero formateado segun la peticion
     * 
     * @example para llamar a la funcion: NumberFormat::cambiarFormato(1,numero);
     * 
     */
    public static function cambiar_formato($parametro, $numero = 0) {


        if ($numero == "") {
            $numero = 0;
        }


        switch ($parametro) {

            case 1:// formato latinoamericano sin separador de miles
                //recibe: $numero, decimales, separador de decimal, separador de miles
                return number_format($numero, 2, ',', '');

                break;

            case 2:// se lleva a formato limpio para insercion en bd

                $monto_temp = str_replace('.', '', $numero); //se eliminan los separadores de miles
                $monto_temp_2 = str_replace(',', '.', $monto_temp); // se cambia el decimal por el punto
                return $monto_temp_2;

                break;

            case 3:// formato latinoamericano con 2 decimales y separador de miles, para montos en moneda

                return number_format($numero, 2, ',', '.');

                break;
        }
    }

}

?>